---
title: Ivybridge/Haswell Common 
x-toc-enable: true
...

For how to use and external programmer see the [25xx NOR flashing guide](/docs/install/spi.html)

The Intel Flash Descriptor defines that the first 5MiB of the 12MiB boot flash consists of
the Intel Flash Descriptor, GbE and Intel ME regions. The final 7MiB of that
12MiB flash is the BIOS region. However, this 12MiB of flash is physically split
into an 8MiB NOR flash and a 4MiB NOR flash; the OS sees a continuous 12MiB of
flash, with the lower part being the contents of 8MiB NOR flash and the upper
contents being the 4MiB NOR flash.

Do not worry too much about which flash chip your programmer is connected to.
Flashrom will fail if you try to flash the wrong sized image for the chip you are connected
to.


The osboot roms released or built for haswell or ivybridge boards come as 12/24MiB roms.
The size of the rom in question refers to the total size of *both* chips.
In order to flash a full rom externally, you need to split the rom into two sections to fit the size of the two chips you wish to flash.
This guide will show examples for the Thinkpad X230, but all of the information will apply to other boards.

Splitting The Rom
-----------------

You can use `dd` to easily split your rom into the two separate portions for
external flashing.
For example, here is how you would split a 12mb rom for installation: 

	dd if=osboot.rom of=top.rom bs=1M skip=8
	dd if=osboot.rom of=bottom.rom bs=1M count=8

You would then flash the 4MiB chip with `top.rom` and the 8MiB chip with `bottom.rom`
For a larger rom image, the same logic would apply.

In dd `skip` means that you want the program to ignore the first n blocks, whereas
`count` means you want it to stop writing after n blocks.
Therefore, to split a 24MiB rom you would use the exact same command to split the
rom because you have not changed the size of the bottom (8MiB) chip.
